package com.casa_apoio.model.dao;

import com.casa_apoio.model.entity.Leito;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.FetchMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

public class LeitoDAO<T> extends HibernateDAO<T> {

    public LeitoDAO(Class<T> classe, Session session) {
        super(classe, session);
    }

    public List<T> listaLeito() {
        Criteria criterio = criaCriteria();
        criterio.addOrder(Order.asc("descricao"));
        List<T> lista = criterio.list();
        return lista;
    }

    public List<Leito> pesquisarLeito(String value) {
        Criterion filtro = Restrictions.like("descricao", value + "%");
        Criteria criterio = criaCriteria();
        criterio.addOrder(Order.asc("descricao")).add(filtro);
        List<Leito> lista = criterio.list();
        return lista;
    }

    public List<Leito> listaLeitosLivre() {
        Criterion filtro = Restrictions.eq("ocupado", false);
        Criteria criterio = criaCriteria();
        criterio.addOrder(Order.asc("descricao")).add(filtro);
        List<Leito> lista = criterio.list();
        return lista;
    }
}
